package com.ruoyi.shop.trade.domain;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商城订单对象 shop_order
 * 
 * @author ruoyi
 * @date 2024-04-29
 */
public class ShopOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 订单类型 0普通订单1团购订单 */
    @Excel(name = "订单类型 0普通订单1团购订单")
    private Integer orderType;

    /** 订单来源 */
    @Excel(name = "订单来源")
    private String orderSource;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Integer status;

    /** 会员ID */
    @Excel(name = "会员ID")
    private Long memberId;

    /** 配送ID */
    @Excel(name = "配送ID")
    private Long deliveryId;

    /** 配送方式 */
    @Excel(name = "配送方式")
    private Integer deliveryType;

    /** 配送名称(快递公司/配送人) */
    @Excel(name = "配送名称(快递公司/配送人)")
    private String deliveryName;

    /** 配送公司编号 */
    @Excel(name = "配送公司编号")
    private String deliveryCode;

    /** 配送状态 */
    @Excel(name = "配送状态")
    private Integer deliveryStatus;

    /** 配送费用 */
    @Excel(name = "配送费用")
    private BigDecimal deliveryAmount;

    /** 配送单号 */
    @Excel(name = "配送单号")
    private String deliveryNo;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String payType;

    /** 支付状态 */
    @Excel(name = "支付状态")
    private Integer payStatus;

    /** 抵扣之后应付金额 */
    @Excel(name = "抵扣之后应付金额")
    private BigDecimal payAmount;

    /** 付款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 会员优惠券ID */
    @Excel(name = "会员优惠券ID")
    private String memberCouponId;

    /** 优惠券金额 */
    @Excel(name = "优惠券金额")
    private BigDecimal couponAmount;

    /** 商品总量 */
    @Excel(name = "商品总量")
    private Integer goodsCount;

    /** 商品总额 */
    @Excel(name = "商品总额")
    private BigDecimal goodsAmount;

    /** 合计金额 */
    @Excel(name = "合计金额")
    private BigDecimal totalAmount;

    /** 余额支付金额 */
    @Excel(name = "余额支付金额")
    private BigDecimal balanceAmount;

    /** 是否允许退款0允许1不允许 */
    @Excel(name = "是否允许退款0允许1不允许")
    private Integer isRefund;

    /** 订单退款金额 */
    @Excel(name = "订单退款金额")
    private BigDecimal refundAmount;

    /** 订单退款状态 */
    @Excel(name = "订单退款状态")
    private Integer refundStatus;

    /** 是否能开发票(0是1否) */
    @Excel(name = "是否能开发票(0是1否)")
    private Integer isInvoice;

    /** 发票类型(0电子发票1纸质发票) */
    @Excel(name = "发票类型(0电子发票1纸质发票)")
    private Integer invoiceType;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /** 发票邮寄费用 */
    @Excel(name = "发票邮寄费用")
    private BigDecimal invoiceAmount;

    /** 发票状态（0已开票1未开票） */
    @Excel(name = "发票状态", readConverterExp = "0=已开票1未开票")
    private Integer invoiceStatus;

    /** 发票备注 */
    @Excel(name = "发票备注")
    private String invoiceRemark;

    /** 发票编码 */
    @Excel(name = "发票编码")
    private String invoiceCode;

    /** 发票凭证 */
    @Excel(name = "发票凭证")
    private String invoiceImage;

    /** 支付订单号 */
    @Excel(name = "支付订单号")
    private String outTradeNo;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Integer tenantId;

    /** 门店ID */
    @Excel(name = "门店ID")
    private Integer storeId;

    /** 删除标志（0代表存在 2代表删除） */
    private Integer delFlag;

    /** 关闭时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "关闭时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date closeTime;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date rogTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceTime;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contact;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String mobile;

    /** 省份ID */
    @Excel(name = "省份ID")
    private Long provinceId;

    /** 省份名称 */
    @Excel(name = "省份名称")
    private String provinceName;

    /** 城市ID */
    @Excel(name = "城市ID")
    private Long cityId;

    /** 城市名称 */
    @Excel(name = "城市名称")
    private String cityName;

    /** 区县ID */
    @Excel(name = "区县ID")
    private Long districtId;

    /** 县区名称 */
    @Excel(name = "县区名称")
    private String districtName;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 买方留言 */
    @Excel(name = "买方留言")
    private String note;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setOrderType(Integer orderType) 
    {
        this.orderType = orderType;
    }

    public Integer getOrderType() 
    {
        return orderType;
    }
    public void setOrderSource(String orderSource) 
    {
        this.orderSource = orderSource;
    }

    public String getOrderSource() 
    {
        return orderSource;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setMemberId(Long memberId) 
    {
        this.memberId = memberId;
    }

    public Long getMemberId() 
    {
        return memberId;
    }
    public void setDeliveryId(Long deliveryId) 
    {
        this.deliveryId = deliveryId;
    }

    public Long getDeliveryId() 
    {
        return deliveryId;
    }
    public void setDeliveryType(Integer deliveryType) 
    {
        this.deliveryType = deliveryType;
    }

    public Integer getDeliveryType() 
    {
        return deliveryType;
    }
    public void setDeliveryName(String deliveryName) 
    {
        this.deliveryName = deliveryName;
    }

    public String getDeliveryName() 
    {
        return deliveryName;
    }
    public void setDeliveryCode(String deliveryCode) 
    {
        this.deliveryCode = deliveryCode;
    }

    public String getDeliveryCode() 
    {
        return deliveryCode;
    }
    public void setDeliveryStatus(Integer deliveryStatus) 
    {
        this.deliveryStatus = deliveryStatus;
    }

    public Integer getDeliveryStatus() 
    {
        return deliveryStatus;
    }
    public void setDeliveryAmount(BigDecimal deliveryAmount) 
    {
        this.deliveryAmount = deliveryAmount;
    }

    public BigDecimal getDeliveryAmount() 
    {
        return deliveryAmount;
    }
    public void setDeliveryNo(String deliveryNo) 
    {
        this.deliveryNo = deliveryNo;
    }

    public String getDeliveryNo() 
    {
        return deliveryNo;
    }
    public void setDeliveryTime(Date deliveryTime) 
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() 
    {
        return deliveryTime;
    }
    public void setPayType(String payType) 
    {
        this.payType = payType;
    }

    public String getPayType() 
    {
        return payType;
    }
    public void setPayStatus(Integer payStatus) 
    {
        this.payStatus = payStatus;
    }

    public Integer getPayStatus() 
    {
        return payStatus;
    }
    public void setPayAmount(BigDecimal payAmount) 
    {
        this.payAmount = payAmount;
    }

    public BigDecimal getPayAmount() 
    {
        return payAmount;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setMemberCouponId(String memberCouponId) 
    {
        this.memberCouponId = memberCouponId;
    }

    public String getMemberCouponId() 
    {
        return memberCouponId;
    }
    public void setCouponAmount(BigDecimal couponAmount) 
    {
        this.couponAmount = couponAmount;
    }

    public BigDecimal getCouponAmount() 
    {
        return couponAmount;
    }
    public void setGoodsCount(Integer goodsCount) 
    {
        this.goodsCount = goodsCount;
    }

    public Integer getGoodsCount() 
    {
        return goodsCount;
    }
    public void setGoodsAmount(BigDecimal goodsAmount) 
    {
        this.goodsAmount = goodsAmount;
    }

    public BigDecimal getGoodsAmount() 
    {
        return goodsAmount;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setBalanceAmount(BigDecimal balanceAmount) 
    {
        this.balanceAmount = balanceAmount;
    }

    public BigDecimal getBalanceAmount() 
    {
        return balanceAmount;
    }
    public void setIsRefund(Integer isRefund) 
    {
        this.isRefund = isRefund;
    }

    public Integer getIsRefund() 
    {
        return isRefund;
    }
    public void setRefundAmount(BigDecimal refundAmount) 
    {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() 
    {
        return refundAmount;
    }
    public void setRefundStatus(Integer refundStatus) 
    {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus() 
    {
        return refundStatus;
    }
    public void setIsInvoice(Integer isInvoice) 
    {
        this.isInvoice = isInvoice;
    }

    public Integer getIsInvoice() 
    {
        return isInvoice;
    }
    public void setInvoiceType(Integer invoiceType) 
    {
        this.invoiceType = invoiceType;
    }

    public Integer getInvoiceType() 
    {
        return invoiceType;
    }
    public void setInvoiceTitle(String invoiceTitle) 
    {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTitle() 
    {
        return invoiceTitle;
    }
    public void setInvoiceAmount(BigDecimal invoiceAmount) 
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount() 
    {
        return invoiceAmount;
    }
    public void setInvoiceStatus(Integer invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public Integer getInvoiceStatus() 
    {
        return invoiceStatus;
    }
    public void setInvoiceRemark(String invoiceRemark) 
    {
        this.invoiceRemark = invoiceRemark;
    }

    public String getInvoiceRemark() 
    {
        return invoiceRemark;
    }
    public void setInvoiceCode(String invoiceCode) 
    {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode() 
    {
        return invoiceCode;
    }
    public void setInvoiceImage(String invoiceImage) 
    {
        this.invoiceImage = invoiceImage;
    }

    public String getInvoiceImage() 
    {
        return invoiceImage;
    }
    public void setOutTradeNo(String outTradeNo) 
    {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo() 
    {
        return outTradeNo;
    }
    public void setTenantId(Integer tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Integer getTenantId() 
    {
        return tenantId;
    }
    public void setStoreId(Integer storeId) 
    {
        this.storeId = storeId;
    }

    public Integer getStoreId() 
    {
        return storeId;
    }
    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }
    public void setCloseTime(Date closeTime) 
    {
        this.closeTime = closeTime;
    }

    public Date getCloseTime() 
    {
        return closeTime;
    }
    public void setRogTime(Date rogTime) 
    {
        this.rogTime = rogTime;
    }

    public Date getRogTime() 
    {
        return rogTime;
    }
    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }
    public void setInvoiceTime(Date invoiceTime) 
    {
        this.invoiceTime = invoiceTime;
    }

    public Date getInvoiceTime() 
    {
        return invoiceTime;
    }
    public void setContact(String contact) 
    {
        this.contact = contact;
    }

    public String getContact() 
    {
        return contact;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setProvinceId(Long provinceId) 
    {
        this.provinceId = provinceId;
    }

    public Long getProvinceId() 
    {
        return provinceId;
    }
    public void setProvinceName(String provinceName) 
    {
        this.provinceName = provinceName;
    }

    public String getProvinceName() 
    {
        return provinceName;
    }
    public void setCityId(Long cityId) 
    {
        this.cityId = cityId;
    }

    public Long getCityId() 
    {
        return cityId;
    }
    public void setCityName(String cityName) 
    {
        this.cityName = cityName;
    }

    public String getCityName() 
    {
        return cityName;
    }
    public void setDistrictId(Long districtId) 
    {
        this.districtId = districtId;
    }

    public Long getDistrictId() 
    {
        return districtId;
    }
    public void setDistrictName(String districtName) 
    {
        this.districtName = districtName;
    }

    public String getDistrictName() 
    {
        return districtName;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setNote(String note) 
    {
        this.note = note;
    }

    public String getNote() 
    {
        return note;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderNo", getOrderNo())
            .append("orderType", getOrderType())
            .append("orderSource", getOrderSource())
            .append("status", getStatus())
            .append("memberId", getMemberId())
            .append("deliveryId", getDeliveryId())
            .append("deliveryType", getDeliveryType())
            .append("deliveryName", getDeliveryName())
            .append("deliveryCode", getDeliveryCode())
            .append("deliveryStatus", getDeliveryStatus())
            .append("deliveryAmount", getDeliveryAmount())
            .append("deliveryNo", getDeliveryNo())
            .append("deliveryTime", getDeliveryTime())
            .append("payType", getPayType())
            .append("payStatus", getPayStatus())
            .append("payAmount", getPayAmount())
            .append("payTime", getPayTime())
            .append("memberCouponId", getMemberCouponId())
            .append("couponAmount", getCouponAmount())
            .append("goodsCount", getGoodsCount())
            .append("goodsAmount", getGoodsAmount())
            .append("totalAmount", getTotalAmount())
            .append("balanceAmount", getBalanceAmount())
            .append("isRefund", getIsRefund())
            .append("refundAmount", getRefundAmount())
            .append("refundStatus", getRefundStatus())
            .append("isInvoice", getIsInvoice())
            .append("invoiceType", getInvoiceType())
            .append("invoiceTitle", getInvoiceTitle())
            .append("invoiceAmount", getInvoiceAmount())
            .append("invoiceStatus", getInvoiceStatus())
            .append("invoiceRemark", getInvoiceRemark())
            .append("invoiceCode", getInvoiceCode())
            .append("invoiceImage", getInvoiceImage())
            .append("outTradeNo", getOutTradeNo())
            .append("tenantId", getTenantId())
            .append("storeId", getStoreId())
            .append("delFlag", getDelFlag())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("closeTime", getCloseTime())
            .append("rogTime", getRogTime())
            .append("finishTime", getFinishTime())
            .append("invoiceTime", getInvoiceTime())
            .append("remark", getRemark())
            .append("contact", getContact())
            .append("mobile", getMobile())
            .append("provinceId", getProvinceId())
            .append("provinceName", getProvinceName())
            .append("cityId", getCityId())
            .append("cityName", getCityName())
            .append("districtId", getDistrictId())
            .append("districtName", getDistrictName())
            .append("address", getAddress())
            .append("note", getNote())
            .toString();
    }
}
